package com.example.springboot.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.example.springboot.controller.domain.ImgDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.example.springboot.common.LDTConfig;
import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
@ApiModel(value = "Goods对象", description = "商品")
@TableName(autoResultMap = true)
public class Goods implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    // 商品名称
    @ApiModelProperty("商品名称")
    @Alias("商品名称")
    private String name;

    // 商品编码
    @ApiModelProperty("商品编码")
    @Alias("商品编码")
    private String code;

    // 商品价格
    @ApiModelProperty("商品价格")
    @Alias("商品价格")
    private BigDecimal price;

    // 库存
    @ApiModelProperty("库存")
    @Alias("库存")
    private Integer store;

    // 库存单位
    @ApiModelProperty("库存单位")
    @Alias("库存单位")
    private String unit;

    // 图片
    @ApiModelProperty("图片")
    @Alias("图片")
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private List<ImgDTO> imgs;

    // 商品简介
    @ApiModelProperty("商品简介")
    @Alias("商品简介")
    private String descr;

    // 上架
    @ApiModelProperty("上架")
    @Alias("上架")
    private Boolean status;

    // 品牌
    @ApiModelProperty("品牌")
    @Alias("品牌")
    private String brand;

    // 备注
    @ApiModelProperty("备注")
    @Alias("备注")
    private String comments;

    // 分类id
    @ApiModelProperty("分类id")
    @Alias("分类id")
    private Integer categoryId;
}
